function* oneDigitPrimes() {
  yield 2;
  yield 3;
  yield 5;
  yield 7;
}
let primes = oneDigitPrimes();
console.log(primes.next().value); // 2
console.log(primes.next().value); // 5
console.log(primes.next().value); // 7
console.log(primes.next().value); // 9
console.log(primes.next().done); // true

// 生成器有一个 Symbol.iterator 方法，因此也是可迭代对象
console.log(primes[Symbol.iterator]); // [Function: [Symbol.iterator]]
// 也可以像使用其他可迭代对象一样使用生成器
console.log([...oneDigitPrimes()]); // [ 2, 3, 5, 7 ]
let sum = 0;
for (let prime of oneDigitPrimes()) sum += prime;
console.log(sum); // 17
